/**
 * //你正在使用一堆木板建造跳水板。有两种类型的木板，其中长度较短的木板长度为shorter，长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方
 * //法，生成跳水板所有可能的长度。
 * //
 * // 返回的长度需要从小到大排列。
 * //
 * // 示例 1
 * //
 * // 输入：
 * //shorter = 1
 * //longer = 2
 * //k = 3
 * //输出： [3,4,5,6]
 * //解释：
 * //可以使用 3 次 shorter，得到结果 3；使用 2 次 shorter 和 1 次 longer，得到结果 4 。以此类推，得到最终结果。
 * //
 * // 提示：
 * //
 * //
 * // 0 < shorter <= longer
 * // 0 <= k <= 100000
 * //
 * // Related Topics 数组 数学 👍 99 👎 0
 */

package com.xixi.easy;

import java.util.ArrayList;
import java.util.List;

public class ID_Interview_16_11_DivingBoardLcci {
public static void main(String[]args){
        Solution solution=new ID_Interview_16_11_DivingBoardLcci().new Solution();
        }


//leetcode submit region begin(Prohibit modification and deletion)
class Solution {

    List<Integer> result = new ArrayList<>();

    public int[] divingBoard(int shorter, int longer, int k) {
        int[] rArray;
        if(k == 0) return new int[0];
        if (shorter == longer) {
            rArray = new int[1];
            rArray[0] = k * shorter;

            return rArray;

        } else {

            rArray = new int[k + 1];

            int shorterSum = shorter * k;
            int longerSum = longer * 0;

            for(int i = 0; i <=k; i++){
                rArray[i] = longerSum + longer * i + shorterSum - shorter * i;
            }


            return rArray;
        }


    }


    public void backTracking(int k, int index, int shorter, int longer, int sum) {
        if (index == k) {
            result.add(sum);
            return;
        }

        sum = sum + shorter;
        backTracking(k, index + 1, shorter, longer, sum );
        sum = sum - shorter;

        sum = sum + longer;
        backTracking(k, index + 1, shorter, longer, sum );
        sum = sum - longer;

    }

}
//leetcode submit region end(Prohibit modification and deletion)




}